home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 May: Tool Chest / Developer CD Series Tool Chest (Apple Computer)(May 1999).iso / Tool Chest / Development Kits / MPW etc / MPW-GM / MPW / Examples / CFMExamples / ModApp / ToolAPI.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-12-03  |  4.1 KB  |  104 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        ToolAPI.h
  3.  
  4.     Contains:    Interface to external tools
  5.  
  6.     Written by:    Richard Clark
  7.  
  8.     Copyright:    © 1993-1994 by Apple Computer, Inc., all rights reserved.
  9.  
  10.     Change History (most recent first):
  11.  
  12.             8/17/94        bls        Extensive changes for CFM-68K.  Removed support
  13.                                  for emulated 68K apps on PowerPC.  Changed tools
  14.                                 to export ProcPtrs.  Only go through MixedMode
  15.                                 when absolutely needed.
  16.                                 
  17.     To Do:
  18. */
  19.  
  20. #ifndef __TOOLAPI__
  21. #define __TOOLAPI__
  22.  
  23. #ifndef __TYPES__
  24.     #include <Types.h>
  25. #endif
  26.  
  27. #ifndef __WINDOWS__
  28.     #include <Windows.h>
  29. #endif
  30.  
  31. #ifndef __EVENTS__
  32.     #include <Events.h>
  33. #endif
  34.  
  35. #ifndef __MIXEDMODE__
  36.     #include <MixedMode.h>
  37. #endif
  38.  
  39. // === Pointer definitions for our callback routines
  40. typedef OSErr (*ToolStartupProcPtr)(WindowPtr wp);
  41. typedef void (*ToolShutdownProcPtr)(WindowPtr wp);
  42. typedef void (*ToolMenuAdjustProcPtr)(WindowPtr wp);
  43. typedef void (*ToolMenuDispatchProcPtr)(WindowPtr wp, short menuID, short itemID);
  44. typedef void (*ToolIdleProcPtr)(WindowPtr wp);
  45. typedef void (*ToolUpdateProcPtr)(WindowPtr wp);
  46. typedef void (*ToolWindowClickProcPtr)(WindowPtr wp, EventRecord *theEvent);
  47. typedef void (*ToolWindowKeyProcPtr)(WindowPtr wp, EventRecord *theEvent);
  48. typedef void (*ToolWindowMovedProcPtr)(WindowPtr wp);
  49. typedef void (*ToolWindowResizedProcPtr)(WindowPtr wp);
  50. typedef void (*ToolWindowActivateProcPtr)(WindowPtr wp, Boolean activeFlag);
  51.  
  52.  
  53.  
  54. // === Prototypes for invoking a tool
  55. extern OSErr CallToolStartupProc (ToolStartupProcPtr proc, WindowPtr wp);
  56. extern void  CallToolShutdownProc (ToolShutdownProcPtr proc, WindowPtr wp);
  57. extern void  CallToolMenuAdjustProc (ToolMenuAdjustProcPtr proc, WindowPtr wp);
  58. extern void  CallToolMenuDispatchProc (ToolMenuDispatchProcPtr proc, WindowPtr wp, short menuID, short itemID);
  59. extern void  CallToolIdleProc (ToolIdleProcPtr proc, WindowPtr wp);
  60. extern void  CallToolUpdateProc (ToolUpdateProcPtr proc, WindowPtr wp);
  61. extern void  CallToolWindowClickProc (ToolWindowClickProcPtr proc, WindowPtr wp, EventRecord *theEvent);
  62. extern void  CallToolWindowKeyProc(ToolWindowClickProcPtr proc, WindowPtr wp, EventRecord *theEvent);
  63. extern void  CallToolWindowMovedProc(ToolWindowMovedProcPtr proc, WindowPtr wp);
  64. extern void  CallToolWindowResizedProc(ToolWindowResizedProcPtr proc, WindowPtr wp);
  65. extern void  CallToolWindowActivateProc(ToolWindowActivateProcPtr proc, WindowPtr wp, Boolean activeFlag);
  66.  
  67.  
  68. // === The "tool information block"
  69. #ifdef powerc
  70.     #pragma options align=mac68k
  71. #endif
  72. struct ToolInfoBlock {
  73. //    long                        toolMenuID;                // Unique ID assigned to our menu
  74.     ToolShutdownProcPtr            shutdownProc;            // Routine to call when tool is unloaded
  75.     ToolMenuAdjustProcPtr        menuAdjustProc;            // Routine to call to adjust tool's menus
  76.     ToolMenuDispatchProcPtr        menuDispatchProc;        // Routine to call when tool's menu is selected
  77.     ToolIdleProcPtr                toolIdleProc;            // Routine to call when tool's image is idled
  78.     ToolUpdateProcPtr            toolUpdateProc;            // Routine to call when tool's window needs updating
  79.     ToolWindowKeyProcPtr        toolKeyProc;            // Routine to call when tool's window is clicked
  80.     ToolWindowClickProcPtr        toolClickProc;            // Routine to call when tool's window is foremost & typing occurs
  81.     ToolWindowMovedProcPtr        toolWindowMovedProc;    // Routine to call when tool's window has been moved
  82.     ToolWindowResizedProcPtr    toolWindowResizedProc;    // Routine to call when tool's window has been resized
  83.     ToolWindowActivateProcPtr    toolWindowActivateProc;    // Routine to call when tool's window has been activated or deactivated
  84. };
  85. #ifdef powerc
  86.     #pragma options align=reset
  87. #endif
  88.  
  89. typedef struct ToolInfoBlock ToolInfoBlock, *ToolInfoPtr;
  90.  
  91. // === Prototypes for our tools
  92. OSErr ToolStartup (WindowPtr wp);
  93. void ToolShutdown (WindowPtr wp);
  94. void ToolMenuAdjust (WindowPtr wp);
  95. void ToolMenuDispatch (WindowPtr wp, short menuID, short itemID);
  96. void ToolIdle (WindowPtr wp);
  97. void ToolUpdate (WindowPtr wp);
  98. void ToolWindowKey(WindowPtr wp, EventRecord *theEvent);
  99. void ToolWindowClick(WindowPtr wp, EventRecord *theEvent);
  100. void ToolWindowMoved(WindowPtr wp);
  101. void ToolWindowResized(WindowPtr wp);
  102. void ToolWindowActivate(WindowPtr wp, Boolean activeFlag);
  103.  
  104. #endif // __TOOLAPI__